import numpy as np
import torch

#
# numpy导入数据
print("numpy导入数据---------------->")
data = np.array([2, 2.2])
print(torch.from_numpy(data))
print(torch.from_numpy(np.array([[1, 2], [2, 2]])))

print("初始化数据------------》")
# 弊端数据不是很多就是很小 使用时一定要覆盖数据
print(torch.empty(2, 2))
print(torch.FloatTensor(2, 2))  # 初始化创建2维 2列数据
print(torch.FloatTensor(2, 3, 2, 2))  # 初始化创建2batch 3维 2行 2列数据
print(torch.IntTensor(2, 3, 2, 2))

# 随机创建矩阵
print("随机创建矩阵------>")

# rand randn的区别 randn是均值为0方差为1的正态分布
print(torch.rand(2))

print(torch.randn(2, 2))  # 2行2列
print(torch.randn(2, 3, 2, 2))  # 2batch 3维度 2行 2列

print(torch.FloatTensor(2))  # 初始化创建1维 2列数据  tensor([-1.0842e-19,  1.8875e+00])
print(torch.ones(2, 3, 2, 2))  # 创建数据全为1 2batch 3维 2行 2列数据
# 将numpy转为tensor
print(torch.from_numpy(np.ones((2, 3, 2, 2))))  # 使用numpy创建数据全为1 2batch 3维 2行 2列数据
print(torch.zeros(2, 3, 2, 2))  # 创建数据全为0 2batch 3维 2行 2列数据
# 随机创建torch.ones(2, 2).shape 维度的数据
print(torch.randn_like(torch.ones(2, 2)))
# 随机创建1到9数字 3行3列
print(torch.randint(1, 10, [3, 3]))
print(torch.randint(1, 10, torch.ones(2, 2).size()))
print(torch.randint(1, 10, torch.ones(2, 2).shape))
# 对角为1的矩阵
print(torch.eye(3, 4))

# 随机打散 将给定数字随机打散
print(torch.randperm(5))
